﻿#define _CRT_SECURE_NO_WARNINGS
// ↑ 将本行在代码放在第一行可以避免 scanf的报错问题（仅在VS编译器里）
// 今日开始【C语言初阶】，计划明日重新温习【初识篇】
//【初阶篇】25.分支和循环语句_if语句和_switch语句
#include<stdio.h>

#include <windows.h> //拓展学习：调用windows.h的头文件中的Sleep延时功能


int main()
{
//25.1 【if】语句 表示结构及用法
	int age = 10;
	if (age < 18)							//【if（表达式）】中的表达式的结果为真，则执行if后的语句
	{
		printf("执行为真1（分支1）的程序1:青少年\n");
		printf("执行为真1（分支1）的程序2:未成年\n");	
		if (age == 10)
		{
			printf("执行分支1后的分支1-1:是本分支要找的10岁年龄\n");
		}
		else								//【else】 会和离它最近的if匹配，因此要在编写程序中注意程序结构和编写规范
		{
			printf("执行分支1后的分支1-2:非本分支要找的匹配年龄\n");
		}
	}										//默认if后跟的语句只执行一句，如果有多条语句需要用大括号括起来
	else if (age >= 18 && age < 28)
	{
		printf("执行为真2（分支2）的程序2:青年\n");
	}
	else if (age < 17 )						//分支中的任一分支符合条件，则不会执行其他分支,即便也符合条件 
	{
		printf("执行为真1'（分支1'）的程序1':也是青少年\n");
	}
	else									//为假则执行else后的语句	
	{
		printf("执行为假（不符合判断分支的其他情况）的程序1：超判断年龄\n");	
		printf("执行为假（不符合判断分支的其他情况）的程序2：不在符合分支\n");
	}										//else后如果要执行多条程序，同样需要大括号	
//--------------------------------------

//25.1【if】练习1，判断一个数字是否为奇数
	{
	printf("【if】练习1，判断一个数字是否为奇数\n");
	Sleep(1000);
	int in_num = 0;
	printf("请输入一个数字： ");
	scanf("%d",& in_num);
	printf("判断中，请稍后。。。 ");
	Sleep(1000); //拓展了Sleep函数，是调用了windows.h的头文件中的Sleep延时功能
	if (in_num % 2 == 1)
		printf("\n输入的数字为奇数\n");
	else
		printf("\n输入的数字为偶数\n");
	//Sleep(1000);
	printf("\n练习1结束\n");
	}
//--------------------------------------
	
//25.1【if】练习2，输出1-100之间的奇数
		//提示利用循环语句
	{
	printf("【if】练习2，判断一个数字是否为奇数\n");
	//Sleep(1000);

	int i = 1;
	while (i <= 100)
	{
		
		if (i % 2 == 1)
		{
			printf("\n数字%d为奇数\n",i);
		}
		/*Sleep(200);*/
		i++;
	}
	printf("\n练习2结束\n");
	}
//--------------------------------------

//25.2 【switch】语句 表示结构及用法
	{
	int day = 0;
	printf("请输入今天是星期几（务必用整形数字）： ");

	scanf("%d", & day);
	switch (day)		//【switch（整形表达式）】
	{
		case 1:				//【case 整形常量】
			printf("星期1\n");
			break;			// 如果没有break，则会继续执行剩余case中的程序
		case 2:
			printf("星期2\n");
			break;
		case 3:
			printf("星期3\n");
			break;
		case 4:
			printf("星期4\n");
			break;
		case 5:
			printf("星期5\n");
			break;
		default:			// default是在case的情况都不符合时，执行default后的代码
			printf("不在定义的case中\n");
			break;
	}
	}
//--------------------------------------

	return 0;
}


//25.分支和循环语句_if语句和_switch语句
	//C语言是一种【结构化】的程序设计语言，生活中的大部分事情都可以抽象成为 【顺序、选择、循环】三种结构
	//“控制语句”用于控制程序的执行流程，以实现各种结构方式，有九种控制语句，可分为三类：
		// | 1.条件判断语句（分支语句）-if、switch 
		// | 2.循环语句-do while、while、for 
		// | 3.转向语句-break、goto、continue、return
	//25.1 【if】语句：
		// if（表达式）
		//	{；}
		// else if（表达式）
		//	{；}
		// else
		//	{；}
		// 可配合 else if、else来使用分支中的任一分支符合条件，则不会执行其他分支 
	//25.2 【switch】语句 
		// switch（整形表达式） 
		// {
		//	case 整形常量1 ：
		//		{ ；break；} 
		//	case 整形常量2 ：
		//		{ ；break；} ...
		//	 default：
		//		 {；break；}
		// } 
		// case中的语句后如果没有break，则会顺序执行剩余case中的程序

